package com.douma.第20天;

import java.util.Scanner;
import java.util.TreeSet;

/**
 * 抖码算法，让算法学习变的简单有趣
 *
 * @作者 : 老汤
 */
public class 最大N个数与最小N个数的和 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int m = sc.nextInt();
        // 使用 TreeSet 可以去重，并且升序排序
        TreeSet<Integer> numsSet = new TreeSet<>();
        for (int i = 0; i < m; i++) {
            numsSet.add(sc.nextInt());
        }

        int n = sc.nextInt();

        if (n > numsSet.size() / 2) {
            // 最大 n 个数和最小 n 个数中肯定有重复的
            System.out.println(-1);
            return;
        }

        int minN_Sum = 0;
        int maxN_Sum = 0;
        int i = 0;
        for (int num : numsSet) {
            if (i < n) {
                minN_Sum += num;
            } else if (i >= m - n) {
                maxN_Sum += num;
            }
            i++;
        }

        System.out.println(minN_Sum + maxN_Sum);

        sc.close();
    }
}
